package com.sharer.last.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sharer.last.base.model.PageVO;
import com.sharer.last.model.dto.moment.MomentChangeDTO;
import com.sharer.last.model.dto.moment.MomentQueryDTO;
import com.sharer.last.model.po.MomentPO;
import com.sharer.last.model.vo.moment.MomentVO;

public interface MomentService extends IService<MomentPO> {
    /**
     * 根据id查询动态
     *
     * @param id 动态id
     * @return
     */
    MomentVO findById(Long id);

    /**
     * 分页查询
     *
     * @param queryDTO
     * @return
     */
    PageVO<MomentVO> selectListByPage(MomentQueryDTO queryDTO);

    /**
     * 发布动态
     *
     * @param dto
     */
    void createMoment(MomentChangeDTO dto);

    /**
     * 更新动态
     *
     * @param dto
     */
    void updateMoment(MomentChangeDTO dto);

    /**
     * 删除动态
     *
     * @param id
     */
    void removeMomentById(Long id);

    /**
     * 更新动态是否可见
     *
     * @param id
     * @param published 是否可见
     */
    void updatePublished(Long id, Integer published);

    /**
     * 动态点赞
     *
     * @param momentId
     */
    void addLikeByMomentId(Long momentId);

}
